class Field:
    def __init__(self, verbose_name, column_type):
        self.verbose_name = verbose_name
        self.column_type = column_type

    def __str__(self):
        return f'<{self.__class__.__name__}, {self.verbose_name}>'


class StringField(Field):
    def __init__(self, verbose_name):
        super(StringField, self).__init__(verbose_name, 'varchar(100)')


class IntegerField(Field):
    def __init__(self, verbose_name):
        super(IntegerField, self).__init__(verbose_name, 'bigint')


class IdField(Field):
    def __init__(self, verbose_name='id'):
        super(IdField, self).__init__(verbose_name, 'integer primary key autoincrement')
